package com.yxinsur.imc.business.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yxinsur.imc.business.domain.ImcCommDetails;
import com.yxinsur.imc.business.excel.CommDetailsTemplate;
import com.yxinsur.imc.business.form.CommDetailsForm;
import com.yxinsur.imc.business.vo.CommDetailsSearchVo;
import org.springframework.web.multipart.MultipartFile;

import java.util.HashMap;
import java.util.List;

/**
 * 佣金报主Service接口
 *
 * @author imc
 * @date 2021-05-25
 */
public interface IImcCommDetailsService extends IService<ImcCommDetails> {
    /**
     * 查询佣金报主
     *
     * @param id 佣金报主ID
     * @return 佣金报主
     */
    public ImcCommDetails selectImcCommDetailsById(Long id);

    /**
     * 查询佣金报主列表
     *
     * @param imcCommDetails 佣金报主
     * @return 佣金报主集合
     */
    public List<ImcCommDetails> selectImcCommDetailsList(ImcCommDetails imcCommDetails);

    /**
     * 新增佣金报主
     *
     * @param imcCommDetails 佣金报主
     * @return 结果
     */
    public int insertImcCommDetails(ImcCommDetails imcCommDetails);

    /**
     * 修改佣金报主
     *
     * @param imcCommDetails 佣金报主
     * @return 结果
     */
    public int updateImcCommDetails(ImcCommDetails imcCommDetails);

    /**
     * 批量删除佣金报主
     *
     * @param ids 需要删除的佣金报主ID
     * @return 结果
     */
    public int deleteImcCommDetailsByIds(String[] ids);

    /**
     * 删除佣金报主信息
     *
     * @param id 佣金报主ID
     * @return 结果
     */
    public int deleteImcCommDetailsById(String id);

    /**
     * 查询佣金明细
     * @param brokerCode 代理人工号
     * @param brokerName 代理人姓名
     * @return
     */
    List<CommDetailsSearchVo> selectDetailsByBrokerInfo(CommDetailsForm commDetailsForm);

    /**
     * 查询基本法表头
     * @param commId
     * @return
     */
    List<HashMap<String, String>> titles(Long commId);

    /**
     * 佣金明细导出功能
     * @param commDetailsForm
     * @return
     */
    List<CommDetailsTemplate> export(CommDetailsForm commDetailsForm) throws NoSuchFieldException, IllegalAccessException;

    void importDetails(MultipartFile file,Long commId)throws Exception;

}
